import * as THREE from 'three';

export default function clockFun() {
    // 给需要设置关键帧动画的模型命名
    window.meshObj.name = 'model';
    const times = [0, 3, 6];//设置时间节点
    const values = [0, 0, 0, 100, 0, 0, 0, 0, 100];//三个一组，设置时间节点对应的坐标位置
    // 0~3秒，物体从（0，0，0）逐渐移动到（100，0，0），3~6秒，物体从（100，0，0）移动到（0，0，100）
    const posKF = new THREE.KeyframeTrack('model.position', times, values);
    // 基于关键帧数据，创建一个clip关键帧动画对象，命名为test,持续时间为6秒
    const clip = new THREE.AnimationClip('test', 6, [posKF]);
    // 播放关键帧动画
    const mixer = new THREE.AnimationMixer(window.meshObj);
    //AnimationMixer的`.clipAction()`返回一个AnimationAction对象
    const clipAction = mixer.clipAction(clip);
    // .play()控制动画播放，默认循环播放
    clipAction.play();

    const clock = new THREE.Clock();
    function loop() {
        requestAnimationFrame(loop);
        const frameT = clock.getDelta();
        // 更新播放器相关时间
        mixer.update(frameT);
    }
    loop();
}
